1. Field of the Invention
The invention pertains to the art of general accounting mechanisms for use in transaction and object-based systems and, more particularly, to automated middleware that transparently generates a symmetrical database of transactions in a system. The information is symmetrical because accounting information is collected on both sides of a transactional conversation or object method to object method call.
2. Description Of Related Art
Businesses that make large capital outlays for equipment often desire to track the usage of that equipment. The reasons for tracking usage are as varied as business itself, but among the more typical rationales for engaging in this type of accounting are 1) to assess the profitability of the purchase or lease, 2) to charge equipment use to various divisions or clients by actual usage, or 3) to reallocate a usage schedule for the equipment on a desired basis (e.g. fairness, efficiency, profitability etc.).
An early known method of tracking usage involved time intensive manual bookkeeping. When a user operated the equipment, the user made an entry in a logbook to document use of the device. Unfortunately, this manual method suffered from several inefficiencies. First, the logbook method is time consuming. At times the accounting effort exceeded the device use. This undesirably made the accounting xe2x80x9ccostxe2x80x9d more than the equipment use. Secondly, the logbook method is only as accurate as the users are diligent in their accounting. This undesirably made the logbook an imperfect mirror of equipment usage, defeating the purpose of accounting. Thirdly, the logbook method is asymmetrical in that the log itself dictates where the information is accumulated. This undesirably limits the usefulness and the analysis potentially available. The asymmetry also causes inaccuracies in that one xe2x80x9ctaskxe2x80x9d may be divided into several sub-tasks. For example, a task may originate on a computer terminal for composing, then move to a superior for editing, and finally onto a printer and a copier for distribution. Fourthly, the logbook system becomes unwieldy as the number of items to account for increases. As organizations push to become ever more efficient, a need exists to account for as many resources as possible, including not only main frame computers, but also other computer peripherals and perhaps even personnel.
Thus, a system is sought that overcomes these shortcomings. The advent of computer monitoring has somewhat helped to alleviate the administrative burden. For example a system in which a printer tracks accounting information is disclosed in U.S. Pat. No. 5,699,493 to Davidson, Jr. et al. and is incorporated here by reference. The Davidson system places the printer in the role of data collector. Previous systems typically accounted for print jobs only on the requesting computer (if accounts were kept at all). That is, the previous system was unilateral vis-à-vis the requesting computer. Davidson, essentially turns the previous system around by having the printer accumulate accounting data, resulting in a unilateral system vis-à-vis the printer.
Another accounting system for a document processing system which executes potentially several jobs over multiple processing facilities is described in U.S. Pat. No. 5,659,845 to Krist et al., incorporated herein by reference. A unique identifier is assigned to a job which remains associated although the job is reduced to several smaller jobs. An accounting log manager correlates the accounting information and saves the result in a file. While the Krist method is easier than the manual system described above, it is not symmetric in that it only tracks the use of the document processing system.
The present invention contemplates a new, efficient method of implicitly generating a symmetrical accounting database regarding transactions on a computer network that overcomes the above-referenced problems and others.
In accordance with the present invention, there is provided a transaction accounting system supporting a system and/or network containing two or more principals. Principals are defined as users (programmatic or human) of the system and/or network. The principals are in communication with each other and thus are capable of requesting and performing transactions and/or methods. Further included in the system are means for recognizing the transactions between principals and means for generating an accounting record after recognizing the transaction or method. Lastly, means for later forwarding the accounting record to a database are also included.
In accordance with another aspect of the present invention, the means for recognizing, generating, and forwarding is one of a plurality of software agents, each principal having such an agent.
In accordance with another aspect of the present invention, a globally unique transaction identifier used for a root transaction is used for all other accounting records generated after the root transaction.
In accordance with another aspect of the present invention, the accounting record includes at least a time stamp, a globally unique transaction identifier, a locally generated conversation identifier, the name of the principal (program or human) originating the transaction or call, the name of the transaction or method in use at the time, the name of the principal receiving the transaction or call, and the name of the transaction or method being invoked.
In accordance with another aspect of the present invention, the agent further selectively generates and appends an extension record to the accounting record. The extension record includes the locally generated conversation identifier and the globally unique transaction identifier. Also added are an extension length indicator and an extension type indicator, along with a billable indicator. Additionally, a plurality of extra data fields supplied by the application in use when the transaction was made are provided.
In accordance with another embodiment of the present invention, a method of generating an accounting database of transactions on a computer network having a plurality of nodes is shown. The method consists of monitoring each node for either an outgoing or an incoming transaction. The method further generates an accounting record on detecting the transaction and caches the accounting record temporarily. Periodically the accounting record is downloaded to the accounting database. These steps are repeated continuously during network operation.
In accordance with another aspect of the present invention, the steps above occur transparently to a user.
In accordance with another aspect of the present invention, the accounting record comprises an extension record. The extension record consists of additional data fields provided by the application in use.
In accordance with another embodiment of the present invention, an automated symmetrical data collection apparatus for generating and storing a plurality of accounting records on a network of computing nodes is shown. The data collection apparatus includes a middleware agent in each node. Every agent monitors their node for a transaction between an operating system and any user interface applications loaded onto the node. When a transaction is noted, the agent generates an accounting record. The data collection apparatus also includes a temporary storage device, addressable by the agent, capable of receiving and holding the accounting record. Additionally, a database is included for receiving and storing the accounting record from the temporary storage device.
In accordance with another aspect of the present invention, the same globally unique transaction identifier is propagated down a transaction tree constructed by subsequent transactions. The globally unique transaction identifier is then used to correlate a set of (possibly nested) transactions performed by independent nodes.
One benefit obtained by use of the present invention is that the accounting information is collected automatically, that is, without requiring user action. This saves the user from a programming task and improves compliance with accounting procedures providing a more robust database.
Another benefit obtained by use of the present invention is that the accounting information is collected, thus analyzable on both the sending and receiving ends of the transaction. That is, the information collected is symmetrical and able to be cross-referenced.
Other benefits and advantages of the subject new method will become apparent to those skilled in the art upon a reading and understanding of this specification.